package Project.SendRedMoney.Up_SendRedPacket;

import Project.SendRedMoney.red.OpenMode;

import java.util.ArrayList;
import java.util.Random;

public class RandomMode implements OpenMode {
    @Override
    public ArrayList<Integer> divide(int totalMoney, int count) {
        ArrayList<Integer> list = new ArrayList<>();
        //范围公式：1+random.nextInt(leftMoney / leftCount * 2)

        //创建随机数生成器
        Random r = new Random();
        //totalMoney是总金额，count是总份数，不变
        //额外定义两个变量，分别代表剩下多少钱，剩下多少份

        int leftMoney = totalMoney;
        int leftCount = count;

        for (int i = 0; i < count - 1; i++) {
            int money = r.nextInt(leftMoney / leftCount *2) + 1;
            //将一个随机红包放入集合
            list.add(money);

            leftMoney-=money;//剩下的红包金额变少
            leftCount-=1;//剩下的再发红包个数，递减
        }

        //最后一个红包不需要随机，直接放进去就得
        list.add(leftMoney);
        return list;
    }
}
